package com.plian.system.vo.hr.staffAnnualBackup;

import com.plian.system.entity.hr.recruitment.PartTimeInfo;
import com.plian.system.entity.hr.staffAnnualBackup.PartTimeInfoOld;
import com.plian.system.entity.hr.staffAnnualBackup.StaffFilesOld;
import com.plian.system.vo.hr.staff.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.List;

/**
 * 员工档案年度备份视图实体类
 *
 * @author gangan
 * @since 2019-09-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "员工档案年度备份VO", description = "员工档案年度备份VO")
public class StaffFilesOldVO extends StaffFilesOld {
	private static final long serialVersionUID = 1L;
	/**
	 * 001证件类型
	 */
	private String documentTypeName;
	/**
	 * 002性别
	 */
	private String genderName;
	/**
	 * 003民族
	 */
	private String nationName;
	/**
	 * 004政治面貌
	 */
	private String politicCountenanceName;
	/**
	 * 005国籍
	 */
	private String nationalityName;
	/**
	 * 006婚姻状态
	 */
	private String maritalStatusName;
	/**
	 * 007最高学历
	 */
	private String educationalName;
	/**
	 * 008最高学位
	 */
	private String degreeName;
	/**
	 * 009管理类别
	 */
	private String managementCategoryName;
	/**
	 * 010编制类型
	 */
	private String compilationTypeName;
//	/**
//	 * 011人员类型
//	 */
//	private String staffTypeName;
//	/**
//	 * 012人员类别
//	 */
//	private String staffCategoryName;
	/**
	 * 013职务类别
	 */
	private String jobCategoryName;
	/**
	 * 014职务名称
	 */
	private String jobNameName;
	/**
	 * 015职级
	 */
	private String rankName;
//	/**
//	 * 016职等
//	 */
//	private String gradePositionsName;
	/**
	 * 017异动事件
	 */
	private String changeEventsName;
	/**
	 * 018异动类型
	 */
	private String changeTypeName;
	/**
	 * 019单位名称
	 */
	@ApiModelProperty(value = "单位名称", required = true)
	private String companyName;
	/**
	 * 020部门名称
	 */
	@ApiModelProperty(value = "部门名称", required = true)
	private String departmentName;
	/**
	 * 021健康状态
	 */
	private String healthConditionName;

    private String createUserName;

    private String updateUserName;

	private String approvedUserName;

	/**
	 * 子表内容
	 */

	/**
	 * 学历学位-排序1
	 */
	@ApiModelProperty(value = "学历学位")
	private List<EducationDegreeOldVO>  educationDegreeVO;

	/**
	 * 任免记录-排序2
	 */
	@ApiModelProperty(value = "任免记录")
	private List<AppointRemoveOldVO>  appointRemoveVO;

	/**
	 * 工作经历-排序3
	 */
	@ApiModelProperty(value = "工作经历")
	private List<WorkExperienceOldVO>  workExperienceVO;

	/**
	 * 奖惩情况-排序4
	 */
	@ApiModelProperty(value = "奖惩情况")
	private List<RewardsPunishmentsOldVO>  rewardsPunishmentsVO;

	/**
	 * 年度考核结果-排序5
	 */
	@ApiModelProperty(value = "年度考核结果")
	private List<AnnualAssessmentOldVO>  annualAssessmentVO;

	/**
	 * 家庭及社会关系-排序6
	 */
	@ApiModelProperty(value = "家庭及社会关系")
	private List<SocialRelationsOldVO>  socialRelationsVO;

	/**
	 * 从业资格证书-排序7
	 */
	@ApiModelProperty(value = "从业资格证书")
	private List<PractitionerCertificateOldVO>  practitionerCertificateVO;

	/**
	 * 专业技术资格-排序8
	 */
	@ApiModelProperty(value = "专业技术资格")
	private List<TechnicalQualificationOldVO>  technicalQualificationVO;

	/**
	 * 近五年三月以上培训情况-排序9
	 */
	@ApiModelProperty(value = "近五年三月以上培训情况")
	private List<TrainOldVO>  trainVO;

	/**
	 * 侨眷情况-排序10
	 */
	@ApiModelProperty(value = "侨眷情况")
	private List<OverseasMembersOldVO>  overseasMembersVO;

	/**
	 * 企业编号（用于数据排序用）
	 */
	private String companyCode;


	/**
	 * 已兼职情况 用于兼职管理
	 */
	private String partTimeJobSituation;

	// 以下字段 业绩考核 根据部门获取人员信息使用

	/**
	 * 是否中层
	 */
	private Integer isMiddle;

	/**
	 * 是否企业负责人
	 */
	private Integer isLeader;

	/**
	 * 平均人数
	 */
	private BigDecimal averageNumber;

	/**
	 * 其中: 中层人数
	 */
	private BigDecimal middleAverageNumber;

	/**
	 * 是否有异动
	 */
	private Integer isChange;

	/**
	 * 填报年月
	 */
	private String fillingMonth;

	private List<PartTimeInfo> partTimeInfos;

	// 备份导出用
	/**
	 * 出生日期
	 */
	private String birthdayStr;

	private String joinPartyTimeStr;

	private String changeTimeStr;

	private String changeDateTimeStr;

	private String approvedTimeStr;


	/**
	 * 全日制教育毕业院校系及专业
	 */
	@ApiModelProperty(value = "全日制教育毕业院校专业")
	private String fulltimeSchoolMajor;


	/**
	 * 在职教育毕业院校专业
	 */
	@ApiModelProperty(value = "在职教育毕业院校专业")
	private String onjobSchoolMajor;



	/**
	 * 现任职务
	 */
	@ApiModelProperty(value = "现任职务")
	private String presentPostId;


	/**
	 * 人员Id
	 */
	@ApiModelProperty(value = "人员Id")
	private String staffNameId;

	private String year;

}
